home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 5: The Fifth Dimension / 17 Bit - The Fifth Dimension (1995)(17 Bit Software)[!].iso / files / 3556.dms / 3556.adf / MacrosUpdate / Load_Address1.1.arexx next >
Text File  |  1995-01-08  |  4KB  |  147 lines

  1. /* Load_Address */
  2. /* A SuperMacro by Steven. R. Giovenella, 5823 Dutchess Dr., Colorado Springs, CO 
  3. 80918.  © Copyright 1994 Steven. R. Giovenella, All rights reserved. 
  4. This macro is my gift to the Amiga community.  It may be given away freely to 
  5. anyone, but it may NOT be sold in any way, shape, or form, not even for the cost of 
  6. reproduction, shipping, or handling, without express written permission from the 
  7. author.  This macro may NOT be added to any disk which is to be sold for any price 
  8. or fee, to include shipping and handling.  The ONLY way this macro may be 
  9. distributed is on a disk which is given away 100% free of all charges, or via 
  10. telecommunications networks which do not charge any additional fee as a result of a 
  11. user downloading this particular macro, although general fees for access to the 
  12. telecommunications system as a whole are acceptable.  This macro may only 
  13. bereproduced in its entirety, including all comment lines and code.  The individual 
  14. user may alter this macro for personal use, but may not then distribute the macro 
  15. in any modified form.  If you wish, feel free to send me some money, a Christmas 
  16. card, some other piece of software, or absolutely nothing as a gift for creating this 
  17. macro.  The author of this software is not responsible for any data loss or damage to 
  18. computer equipment as a result, direct or indirect, of the use of this macro. */
  19.  
  20. Options Results
  21.  
  22. /* Determine insertion point */
  23.     ShowMessage 1 0 '"Place cursor where you want " "the new address(es) in
  24. serted." "BEFORE BEGINNING THIS MACRO." "     OK, Go on!     " "     Stop!     " 
  25. ""'
  26.     IF Result = 2 THEN Exit
  27.     type " "
  28.     backspace
  29.  
  30. /* Open the data file */
  31.     RequestText '"Load Address" "Enter source Data File..." 
  32. "Address_DataFile"'
  33.         datafile = Result
  34.     file = "FWDocs/"||datafile
  35.     Open file
  36.     type " "
  37.     backspace
  38.  
  39. /* Address the data file */
  40.     Status PortName
  41.         port = Result
  42.     portnumber = RIGHT(port,1) + 1
  43.     newport = LEFT(port,7)||portnumber
  44.     ADDRESS VALUE newport
  45.     Cursor UP
  46.  
  47.  
  48. BeginSearch:
  49.  
  50. /* Get a string to search for */
  51.     RequestText '"Load Address" "Enter search text" ""'
  52.         Searchtext = Result
  53.  
  54.  
  55. /* Search for it */
  56.     m=0
  57.     MoveToPara 2 0
  58.     Status LinePos
  59.         oldcoords = Result
  60.     Find
  61.     DO Forever
  62.         Find searchtext
  63.         Status LinePos
  64.             coords = Result
  65.         IF coords=oldcoords THEN DO
  66.             Leave
  67.             END
  68.         PARSE VAR coords BegLine BegPos EndLine EndPos
  69.         IF EndPos~=0 THEN DO
  70.             m = m+1
  71.             Cursor RIGHT
  72.             AltDOWN
  73.             Cursor UP
  74.             ShiftDOWN
  75.             AltDOWN
  76.             Cursor DOWN
  77.             extract
  78.             match.m = Result
  79.              AltUp
  80.             CtrlUp
  81.             ShiftUP
  82.             END
  83.         oldcoords=coords
  84.         END
  85.  
  86. /* Reveal Matches */
  87.     ShowMessage 1 0 '" 'm'  match(es) found! " " " "" "     Continue     " " Start New 
  88. Search " "     Cancel     "'
  89.         IF Result = 2 THEN Call BeginSearch
  90.         IF Result = 3 THEN DO
  91.             Close FORCE
  92.             Exit
  93.             END
  94.  
  95. /* Switch Arexx ports */
  96.     ADDRESS VALUE port
  97.     Cursor LEFT
  98.     Cursor RIGHT
  99.     WinToFront
  100.  
  101. /* Load all addresses */
  102.     DO i = 1 to m
  103.         lastchar = ""
  104.         comma = 0
  105.         DO char = 1 to LENGTH(match.i)
  106.             thischar = RIGHT(LEFT(match.i, char),1)
  107.             IF thischar = "," THEN DO
  108.                 comma = comma + 1
  109.                 IF comma~=2 THEN DO
  110.                     IF lastchar ~= "," THEN newparagraph
  111.                     END
  112.                 IF comma=1 then DO
  113.                     AltUP
  114.                     CtrlDOWN
  115.                     Cursor UP
  116.                     CtrlUP
  117.                     END
  118.                 IF comma=2 then DO
  119.                     type " "
  120.                     CtrlDOWN
  121.                     Cursor DOWN
  122.                     CtrlUP    
  123.                     END
  124.                 IF comma=6 then DO
  125.                     backspace
  126.                     type ", "
  127.                     END
  128.                 IF comma=7 then DO
  129.                     backspace
  130.                     type "  "
  131.                     END
  132.                 END
  133.             IF thischar ~= "," THEN DO
  134.                 type thischar
  135.                 END
  136.             lastchar = thischar    
  137.             END
  138.         newparagraph
  139.         newparagraph
  140.         END
  141. /* Close Data File */
  142.     ADDRESS VALUE newport
  143.     Cursor LEFT
  144.     Cursor RIGHT
  145.     Close FORCE
  146.  
  147.